package com.wicket.okrcomponent.web.contorller;

import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.page.PageMethod;
import com.wicket.okrcomponent.biz.service.EvaCalcService;
import com.wicket.okrcomponent.biz.service.dto.req.*;
import com.wicket.okrcomponent.biz.service.dto.res.*;
import com.wicket.okrcomponent.common.ro.OkrResult;
import com.wicket.okrcomponent.common.util.CommonFunctionHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@RestController
@RequestMapping("/comp/evaCalc/")
public class EvaCalcController {

  @Autowired
  EvaCalcService evaCalcService;
/**
   * D2更新分段查询Redis记录(公共)
   */
    @PostMapping("refreshSegQueryRedisRecordCom")
    public OkrResult<RefreshSegQueryRedisRecordComRespDto> refreshSegQueryRedisRecordCom(@RequestBody @Validated RefreshSegQueryRedisRecordComReqDto reqDTO){
    return OkrResult.success(evaCalcService.refreshSegQueryRedisRecordCom(reqDTO));
    }
/**
   * D2新增规划目标计算MQ遥控器(公共)
   */
    @PostMapping("addPlanTargetCalcMqRemoteControllerCom")
    public OkrResult<AddPlanTargetCalcMqRemoteControllerComRespDto> addPlanTargetCalcMqRemoteControllerCom(@RequestBody @Validated AddPlanTargetCalcMqRemoteControllerComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addPlanTargetCalcMqRemoteControllerCom(reqDTO));
    }
/**
   * D2新增规划财务MQ遥控器(公共)
   */
    @PostMapping("addFinancialPlannMqRemoteControllerCom")
    public OkrResult<AddFinancialPlannMqRemoteControllerComRespDto> addFinancialPlannMqRemoteControllerCom(@RequestBody @Validated AddFinancialPlannMqRemoteControllerComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addFinancialPlannMqRemoteControllerCom(reqDTO));
    }
/**
   * D2遥控器MQ排队(修改单条redis)
   */
    @PostMapping("updateRemoteControllerMqQueueCom")
    public OkrResult<UpdateRemoteControllerMqQueueComRespDto> updateRemoteControllerMqQueueCom(@RequestBody @Validated UpdateRemoteControllerMqQueueComReqDto reqDTO){
    return OkrResult.success(evaCalcService.updateRemoteControllerMqQueueCom(reqDTO));
    }
/**
   * D2规划目标计算MQ排队(新增单条redis)
   */
    @PostMapping("addPlanTargetCalcMqQueueRedisCom")
    public OkrResult<AddPlanTargetCalcMqQueueRedisComRespDto> addPlanTargetCalcMqQueueRedisCom(@RequestBody @Validated AddPlanTargetCalcMqQueueRedisComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addPlanTargetCalcMqQueueRedisCom(reqDTO));
    }
/**
   * D2执行规划目标计算MQ排队(公共)
   */
    @PostMapping("implementPlanTargetCalcMqQueueCom")
    public OkrResult<ImplementPlanTargetCalcMqQueueComRespDto> implementPlanTargetCalcMqQueueCom(@RequestBody @Validated ImplementPlanTargetCalcMqQueueComReqDto reqDTO){
    return OkrResult.success(evaCalcService.implementPlanTargetCalcMqQueueCom(reqDTO));
    }
/**
   * D2准备统计资金来源及账户配置参数(公共)
   */
    @PostMapping("preparationStatisticalFundSourcesAccountConfParametersCom")
    public OkrResult<PreparationStatisticalFundSourcesAccountConfParametersComRespDto> preparationStatisticalFundSourcesAccountConfParametersCom(@RequestBody @Validated PreparationStatisticalFundSourcesAccountConfParametersComReqDto reqDTO){
    return OkrResult.success(evaCalcService.preparationStatisticalFundSourcesAccountConfParametersCom(reqDTO));
    }
/**
   * D2新增OKR目标计算MQ遥控器(公共)
   */
    @PostMapping("addOkrTargetCalcMqRemoteControllerCom")
    public OkrResult<AddOkrTargetCalcMqRemoteControllerComRespDto> addOkrTargetCalcMqRemoteControllerCom(@RequestBody @Validated AddOkrTargetCalcMqRemoteControllerComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addOkrTargetCalcMqRemoteControllerCom(reqDTO));
    }
/**
   * D2新增绩效目标计算MQ遥控器(公共)
   */
    @PostMapping("addKpiTargetCalcMqRemoteControllerCom")
    public OkrResult<AddKpiTargetCalcMqRemoteControllerComRespDto> addKpiTargetCalcMqRemoteControllerCom(@RequestBody @Validated AddKpiTargetCalcMqRemoteControllerComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addKpiTargetCalcMqRemoteControllerCom(reqDTO));
    }
/**
   * D2准备OKR目标计算配置参数(公共)
   */
    @PostMapping("preparationOkrTargetCalcConfParametersCom")
    public OkrResult<PreparationOkrTargetCalcConfParametersComRespDto> preparationOkrTargetCalcConfParametersCom(@RequestBody @Validated PreparationOkrTargetCalcConfParametersComReqDto reqDTO){
    return OkrResult.success(evaCalcService.preparationOkrTargetCalcConfParametersCom(reqDTO));
    }
/**
   * D2准备绩效目标计算配置参数(公共)
   */
    @PostMapping("preparationKpiTargetCalcConfParametersCom")
    public OkrResult<PreparationKpiTargetCalcConfParametersComRespDto> preparationKpiTargetCalcConfParametersCom(@RequestBody @Validated PreparationKpiTargetCalcConfParametersComReqDto reqDTO){
    return OkrResult.success(evaCalcService.preparationKpiTargetCalcConfParametersCom(reqDTO));
    }
/**
   * D2查询单遥控器Redis详情(公共)
   */
    @PostMapping("querySingleRemoteControllerRedisDetailCom")
    public OkrResult<QuerySingleRemoteControllerRedisDetailComRespDto> querySingleRemoteControllerRedisDetailCom(@RequestBody @Validated QuerySingleRemoteControllerRedisDetailComReqDto reqDTO){
    return OkrResult.success(evaCalcService.querySingleRemoteControllerRedisDetailCom(reqDTO));
    }
/**
   * D2执行Redis长生守护(公共)
   */
    @PostMapping("implementRedisLongevityGuardianCom")
    public OkrResult<ImplementRedisLongevityGuardianComRespDto> implementRedisLongevityGuardianCom(@RequestBody @Validated ImplementRedisLongevityGuardianComReqDto reqDTO){
    return OkrResult.success(evaCalcService.implementRedisLongevityGuardianCom(reqDTO));
    }
/**
   * D2查询有排队的遥控器详情(redis)
   */
    @PostMapping("queryQueueingRemoteControllerDetailCom")
    public OkrResult<QueryQueueingRemoteControllerDetailComRespDto> queryQueueingRemoteControllerDetailCom(@RequestBody @Validated QueryQueueingRemoteControllerDetailComReqDto reqDTO){
    return OkrResult.success(evaCalcService.queryQueueingRemoteControllerDetailCom(reqDTO));
    }
/**
   * D2查询规划目标计算MQ遥控器公共业务数据(Redis)
   */
    @PostMapping("queryPlanTargetCalcMqRemoteControllerBusinessDataDetailCom")
    public OkrResult<QueryPlanTargetCalcMqRemoteControllerBusinessDataDetailComRespDto> queryPlanTargetCalcMqRemoteControllerBusinessDataDetailCom(@RequestBody @Validated QueryPlanTargetCalcMqRemoteControllerBusinessDataDetailComReqDto reqDTO){
    return OkrResult.success(evaCalcService.queryPlanTargetCalcMqRemoteControllerBusinessDataDetailCom(reqDTO));
    }
/**
   * D2查询MQ排队计算内容数据详情(公共)
   */
    @PostMapping("queryRemoteControllerQueueConDataDetailCom")
    public OkrResult<QueryRemoteControllerQueueConDataDetailComRespDto> queryRemoteControllerQueueConDataDetailCom(@RequestBody @Validated QueryRemoteControllerQueueConDataDetailComReqDto reqDTO){
    return OkrResult.success(evaCalcService.queryRemoteControllerQueueConDataDetailCom(reqDTO));
    }
/**
   * D2执行当前排队移出回写最小排队值(redis)
   */
    @PostMapping("implementCurQueueOutWriteMiniCom")
    public OkrResult<ImplementCurQueueOutWriteMiniComRespDto> implementCurQueueOutWriteMiniCom(@RequestBody @Validated ImplementCurQueueOutWriteMiniComReqDto reqDTO){
    return OkrResult.success(evaCalcService.implementCurQueueOutWriteMiniCom(reqDTO));
    }
/**
   * D2执行MQ遥控器重置为0(公共)
   */
    @PostMapping("implementRemoteControllerResetZeroCom")
    public OkrResult<ImplementRemoteControllerResetZeroComRespDto> implementRemoteControllerResetZeroCom(@RequestBody @Validated ImplementRemoteControllerResetZeroComReqDto reqDTO){
    return OkrResult.success(evaCalcService.implementRemoteControllerResetZeroCom(reqDTO));
    }
/**
   * D2新增规划财务MQ排队(redis)
   */
    @PostMapping("addFinancialPlannMqQueueRedisCom")
    public OkrResult<AddFinancialPlannMqQueueRedisComRespDto> addFinancialPlannMqQueueRedisCom(@RequestBody @Validated AddFinancialPlannMqQueueRedisComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addFinancialPlannMqQueueRedisCom(reqDTO));
    }
/**
   * D2执行规划财务MQ排队(redis)
   */
    @PostMapping("implementFinancialPlannMqQueueCom")
    public OkrResult<ImplementFinancialPlannMqQueueComRespDto> implementFinancialPlannMqQueueCom(@RequestBody @Validated ImplementFinancialPlannMqQueueComReqDto reqDTO){
    return OkrResult.success(evaCalcService.implementFinancialPlannMqQueueCom(reqDTO));
    }
/**
   * D2查询规划财务MQ排队详情(公共)
   */
    @PostMapping("queryFinancialPlannMqQueueDetailCom")
    public OkrResult<QueryFinancialPlannMqQueueDetailComRespDto> queryFinancialPlannMqQueueDetailCom(@RequestBody @Validated QueryFinancialPlannMqQueueDetailComReqDto reqDTO){
    return OkrResult.success(evaCalcService.queryFinancialPlannMqQueueDetailCom(reqDTO));
    }
/**
   * D2新增公共字段(推内存)
   */
    @PostMapping("addCommonDataCom")
    public OkrResult<AddCommonDataComRespDto> addCommonDataCom(@RequestBody @Validated AddCommonDataComReqDto reqDTO){
    return OkrResult.success(evaCalcService.addCommonDataCom(reqDTO));
    }
/**
   * D2查询规划财务MQ遥控器详情(redis)
   */
    @PostMapping("queryFinancialPlannMqRemoteControllerDetailCom")
    public OkrResult<QueryFinancialPlannMqRemoteControllerDetailComRespDto> queryFinancialPlannMqRemoteControllerDetailCom(@RequestBody @Validated QueryFinancialPlannMqRemoteControllerDetailComReqDto reqDTO){
    return OkrResult.success(evaCalcService.queryFinancialPlannMqRemoteControllerDetailCom(reqDTO));
    }
}
